<?php
/**
 * 基类
 * 
 * @package ews
 * @ews Enterprise WorkShop
 * @version 1.0 alpha
 * @since 2011-05-03
 * @author monkee
 */

class app
{
	protected $core;
	protected $user;
	protected $user_id;
	
	function __construct(){
		$this->_init();
	}
	
	function _init(){
		global $core;
		$this->core = & $core;
		$this->user = $core->current_user();
		$this->user_id = intval($this->user['user_id']);
	}
	
	/**
	 * 模型获取
	 * 
	 * 获取mod目录下的模型文件
	 * 系统架构中不可或缺的一部分 
	 * @param string $str model名
	 */
	protected function & getModel($str){
		return $this->core->getModel($str);
	}
	
	/**
	 * 系统数据获取
	 * 
	 * 获取系统数据，同：$core->getData
	 * 可使用 & 符号进行地址获取
	 * @param string $str 变量名，使用：'/'来对数组进行分割，如：$_g['post']['abb'] == $core->getData('post/abb')
	 */
	protected function & getData($str){
		return $this->core->getData($str);
	}
	
	/**
	 * 消息体
	 * 
	 * 跳转到消息页面，并通知消息
	 * json页面返回jason提示
	 * 会中断页面流程
	 * @param string $msg
	 * @param string $type info|error|notice
	 * @return void
	 */
	protected function message($msg, $type = 'info'){
		$this->core->msg($msg, $type);
	}
	
	/**
	 * 页面内嵌消息
	 * 
	 * 页面内嵌的消息主要用于一些操作更新后的通知消息
	 * 不用跳转到单独的通知页面
	 * 可用于页面更新等
	 * @param string $msg 消息内容
	 * @return void
	 */
	protected function inner_msg($msg){
		Cookie::set('message', $msg);
	}

	protected function login_need(){
		
		if(intval($this->user_id) == 0){
			if(INAJAX == 1){
				echo '<script>top.location.href="/user/login";</script>';
				exit;
			}else{
				go_to('/user/login');
			}
			exit('sd');
		}
	}
}
?>